O Interface de Computação Heterogênea para Portabilidade (HIP) fornece uma API de tempo de execução em C++ que abstrai camadas de hardware para oferecer uma base de código unificada para GPUs NVIDIA e AMD. Esse caminho elimina o comprometimento com fornecedores ao espelhar o ambiente CUDA enquanto direciona para o ROCm backend.
1. Configuração do Ambiente
A inicialização começa com a definição de variáveis de ambiente para apontar o compilador hipcc para a ferramenta correta:
$ export PATH=$PATH:[MYHIP]/bin
2. Padronização da Ferramenta
O hipcc compilador atua como um invólucro inteligente. Para automação de construção, a lógica HIP_PATH ?= $(shell hipconfig --path) garante que seu Makefile encontre dinamicamente a instalação do HIP independentemente da configuração do sistema.
3. Lógica de Versão
O HIP utiliza uma fórmula determinística de versão para tratar a disponibilidade de recursos de forma programática entre versões:
$$\text{HIP\_VERSÃO} = \text{HIP\_VERSÃO\_MAIOR} \times 10^7 + \text{HIP\_VERSÃO\_MINOR} \times 10^5 + \text{HIP\_VERSÃO\_CORREÇÃO}$$
4. Equivalentes de Tempo de Execução Principais
O HIP fornece hipMalloc e hipLaunchKernel como espelhos funcionais das chamadas de memória e execução do CUDA, permitindo uma filosofia de desenvolvimento "de fonte única".